package com.cskaoyan._02interface._04ex;

/**
 * @description:
 * @author: 景天
 * @date: 2023/2/11 11:25
 **/
/*
1. 教练（Coach）和运动员（Sportsman）案例

> 小试牛刀请用所学知识分析：这个案例中有哪些抽象类，哪些接口，哪些具体类。

现在有乒乓球运动员和篮球运动员，乒乓球教练和篮球教练。
为了能够出国交流，跟乒乓球相关的人员都需要学习英语。

抽象类:
    人
    运动员
    教练
具体类:
    乒乓球运动员
    篮球运动员
    乒乓球教练
    篮球教练
接口:
    学习英语
 */
public class Demo {
    public static void main(String[] args) {

    }
}
abstract class Person{
    String name;
    int age;

    public void eat() {
        System.out.println("吃放");
    }

    public void sleep() {
        System.out.println("睡觉");
    }
}
//运动员
abstract class Player extends Person{
    double bonus;

    // 训练
    public abstract void training();
    // 比赛
    public abstract void play();


}
// 教练
abstract class Coach extends Person{
    double salary;
    String project;

    // 指导训练的工作
    public abstract void teach();
}

// 乒乓球运动员
class TableTennisPlayer extends Player implements Learning{

    @Override
    public void training() {
        System.out.println("乒乓球训练");
    }

    @Override
    public void play() {
        System.out.println("进行乒乓球比赛");

    }

    @Override
    public void learnEnglish() {
        System.out.println("学英语");
    }
}

// 篮球运动员
class BasketBallPlayer extends Player{
    @Override
    public void training() {
        System.out.println("篮球训练");

    }

    @Override
    public void play() {
        System.out.println("篮球比赛");

    }
}

//     乒乓球教练
class TableTennisCoach extends Coach implements Learning{

    @Override
    public void teach() {
        System.out.println("教学乒乓球");
    }

    @Override
    public void learnEnglish() {
        System.out.println("学习英语");
    }
}

//    篮球教练
class BasketBallCoach extends Coach{

    @Override
    public void teach() {
        System.out.println("教学篮球");
    }
}

// 接口
interface Learning{
    void learnEnglish();
}